one#1
Open
jjhesk wants to merge 633 commits into
Open
Conversation
- 新增三种工作模式:Lead Hunting(创作者探索)、Comment Engagement(评论区拓展)、Intel Gathering(商业情报采集) - 新增 bd-record/info-record 两个 SQLite 去重记录技能及 9 个脚本 - 新增 lead-hunting/comment-engagement/intel-gathering 三个工作模式执行技能 - xhs-interact 从 selfmedia-operator 专属技能迁移为 addon 级全局技能 - HEARTBEAT.md 改为按需写入,提供 HEARTBEAT_TEMPLATE.md 供 agent 参照 - 命令级别从 T2 降为 T1 - addon 版本升至 0.4.1 Co-Authored-By: Claude Opus 4.7 <[email protected]>
- 新增 IR crew 模板(AGENTS/SOUL/IDENTITY 等 13 个文件),三种工作模式:Deal Crafting / Investor Hunting / Relationship Tracking - 新增 ir-record 专属技能(SKILL.md + 8 个 SQLite 脚本),支持投资人档案管理、接触记录和 Pipeline 进度查询 - 新增 ppt-maker 全局技能,支持 JSON 驱动 PPTX 生成、模板风格提取、siliconflow-img-gen AI 配图 - 补充 BD crew 的 pitch-deck 技能和 login-manager/wx-mp-hunter 配置 - 新增 addons/officials/requirements.txt(python-pptx) - addon.json 新增 ir 为 internal_crew,描述中加入 ppt-maker 和 ir Co-Authored-By: Claude Opus 4.7 <[email protected]>
- BD crew: 移除 affiliate-marketing/cold-outreach 引用(BUILTIN_SKILLS/TOOLS/ALLOWED_COMMANDS/setting_sample) - BD crew: SOUL.md 表格补入模式四,HEARTBEAT_TEMPLATE.md 模式一补入 web 平台和 Email 联系选项 - lead-hunting: 修复 email-ops 括号格式,Step 4 重写为结构化双分支(私信/Email) - selfmedia-operator: 梳理 BUILTIN_SKILLS(删 summarize/gifgrep,补入 siliconflow/pexels/pixabay/smart-search/browser-guide) - selfmedia-operator: ALLOWED_COMMANDS 清理冗余命令和 + 前缀,补入 ffmpeg - selfmedia-operator: openclaw_setting_sample.json 与 BUILTIN_SKILLS 对齐 - addon.json: 描述补入 pexels-footage/pixabay-footage - requirements.txt: 补入 requests Co-Authored-By: Claude Opus 4.7 <[email protected]>
- 重构 env 收集逻辑:collect_env_refs_from_config / get_env_file_value / prompt_env_value 提升为共享函数(不再限制在 Linux 分支内) - env_refs 收集改为跨平台共享(section 8a) - Linux 行为不变:daemon install 前写入 daemon.env(KEY=VALUE 格式)+ node PATH 注入 + WSL2 GUI 变量(section 8b) - 新增 macOS 处理(section 10):daemon install 后将 env_refs 变量以 shell export 格式追加到 ~/.openclaw/service-env/ai.openclaw.gateway.env, 跳过 daemon install 已写入的变量,处理单引号转义,追加后重启 gateway - get_env_file_value 增强:兼容 KEY=VALUE(systemd)和 export KEY= 格式 Co-Authored-By: Claude Opus 4.7 <[email protected]>
- config-templates: 新增 deepseek / siliconflow 两个 provider
- deepseek: v4-flash(主力)+ v4-pro(it-engineer 专用)
- siliconflow: DeepSeek-V4-Flash(语替)+ Qwen3.6-27B(视觉)
- agent defaults: primary=deepseek/deepseek-v4-flash,
fallbacks=[siliconflow/deepseek-ai/DeepSeek-V4-Flash, siliconflow/Qwen/Qwen3.6-27B]
imageModel=Qwen3.6-27B,thinkingDefault=medium,subagents.maxConcurrent=1
- it-engineer: model.primary 覆写为 deepseek/deepseek-v4-pro
- README: 模型推荐更新为 DeepSeek 官方 API + SiliconFlow 邀请链接,说明 install.sh 自动收集
- install.sh: config 中 ${DEEPSEEK_API_KEY} / ${SILICONFLOW_API_KEY} 已被 collect_env_refs_from_config 覆盖
Co-Authored-By: Claude Opus 4.7 <[email protected]>
- 新增 OPENCLAW_BROWSER_TIMEOUT_MS=90000 / OPENCLAW_DISABLE_BONJOUR=true 硬编码写入(不询问),Linux 和 macOS 双平台支持 - Linux daemon.env: 移除 [ -n "$env_refs" ] 守卫,即使无用户 key 也写入固定变量 - macOS gateway.env: 同样移除 env_refs 守卫,固定变量先写入, 用户 key 仅在 env_refs 非空时追加询问 - 固定变量跳过已存在的 key(幂等),PATH / WSL2 逻辑不变 Co-Authored-By: Claude Opus 4.7 <[email protected]>
- config-templates/openclaw.json: deepseek (v4-flash/v4-pro) + siliconflow 双 provider agent defaults: primary=deepseek/deepseek-v4-flash, thinkingDefault=medium 视觉模型: Qwen3.6-27B, 替补链 fallbacks, it-engineer 覆写 v4-pro - config-templates/openclaw-aihubmix.json: 备选配置(ChatGPT/Gemini/Claude 用户) - install.sh: 砍掉 collect_env_refs_from_config(Node.js 内联扫描), 替换为 _write_missing_env() 直接处理 DEEPSEEK_API_KEY + SILICONFLOW_API_KEY 询问 + 硬编码 OPENCLAW_BROWSER_TIMEOUT_MS/DISABLE_BONJOUR,双平台支持 - setup-crew.sh: OFB_ENV.md 新增环境变量文件完整说明(路径/格式/时机/注意事项, 仅写当前系统对应文件);注入 inject_env_file_guide 到 it-engineer/hrbp TOOLS.md - agent-skills.sh: 新增 inject_env_file_guide() 函数 - BD/IR AGENTS.md: daemon.env 硬编码 → OFB_ENV.md 引用 - README: 快速开始改为三步(注册 Key → 获取代码 → install.sh), 模型推荐 DeepSeek+SiliconFlow+AiHubMix 备选 - docs/quick_start.md: upgrade.sh/reinstall-daemon.sh → install.sh,更新常用命令 Co-Authored-By: Claude Opus 4.7 <[email protected]>
生成 PPTX 后必须逐页转为 PNG 图片,用 Read 工具打开每张图检查布局、 字体大小、元素偏移等问题,发现异常则修复后重新生成,最多重试 3 轮。 同时新增 LibreOffice 自动安装元数据(macOS brew)。 Co-Authored-By: Claude Opus 4.7 <[email protected]>
所有 4 个 patch 均干净应用,无冲突。 Co-Authored-By: Claude Opus 4.7 <[email protected]>
- CHANGELOG: 新增 v5.4.9 独立版本节(openclaw v2026.5.7、install.sh 优化、DeepSeek+SiliconFlow 最佳实践、bug 修复、新 crew 预发布) - README: v5.4.8→v5.4.9 更新要点 + AI 员工团队 lineup 替换原 addons 段落 - config-template: announceTimeoutMs 120s→3600s(1 小时),避免 subagent 长任务超时 - install.sh: 缺失 key 提前展示优化 Co-Authored-By: Claude Opus 4.7 <[email protected]>
exec 不会展开花括号,mkdir -p {notes,images} 会创建名为
{notes,images} 的单个文件夹而非两个独立文件夹,补充正确写法。
rmdir 只删除空目录,安全性高于 rm,适合纳入 T2 开发工具链。
…mprovements - Added Python dependency installation logic in apply-addons.sh to manage skill dependencies. - Introduced init-workspace skill for creating standard directory structures for design tasks. - Created investor-materials skill for generating and updating fundraising materials. - Developed investor-outreach skill for drafting investor communication documents. - Implemented market-research skill for conducting market analysis and competitor research. - Added xianyu-ops skill for managing product searches and messaging on the Xianyu platform. - Introduced a layout check script for PPTX files to ensure visual consistency and detect defects. - Updated browser-guide documentation with best practices for using the managed browser. - Improved exec-tiers.sh to include additional commands for tier 2 access.
openclaw requires Node.js v22.19+, but CI was pinned to v22.18.0. Since we've already adapted to Node 24, updating the CI config.
Fix/ci node version
add: ir swcr register skill
Fix/ci node version add ir swcr-register skill
one command release solution for 5.6
- build-dist.yml 在出 tarball 后、attach release 前加冒烟 step:解压 linux tarball → 跑 install.sh --no-prompt --skip-bind --skip-browser(指本地 tarball,不碰 runner ~/.openclaw)→ bin/openclaw --version。冒烟失败则 workflow fail,不会把坏 tarball attach 到 release - install.sh / install.ps1 加 --skip-browser / -SkipBrowser:跳过 camoufox-cli 浏览器二进制安装(省 ~557MB Firefox 下载),冒烟只验解压+依赖装+引擎起
- release.yml 推 tag 后主动 gh workflow run build-dist.yml -f tag=<tag>:GITHUB_TOKEN 推 tag 不触发下游 on:push(递归保护),workflow_dispatch 是例外可触发;加 actions: write 权限,清过期注释 - build-dist.yml 加 workflow_dispatch inputs.tag;ASSET_TAG 优先 inputs.tag > git tag > version 文件,输出 asset_tag 供冒烟/attach 复用;attach 去 continue-on-error + 去 per-file || true(上传失败不再被吞,release 不会静默缺包) - ci.yml / release.yml / build-dist.yml:actions/checkout v4→v5、setup-node v4→v5、pnpm/action-setup v4→v6,全部 node24 runtime,消 Node 20 deprecation 警告
升级 actions/setup-node@v5→v6:v5 的 package-manager-cache 检测到 package.json 里 packageManager: pnpm@ 就自动开 pnpm 缓存,但它在 pnpm/action-setup 之前跑、pnpm 还没装,抛 'Unable to locate executable file: pnpm'(setup-node#1351)。v6 把自动缓存限为 npm-only,解。 pnpm/action-setup@v6 显式传 version: 10.30.2,规避 v6 早期不读 packageManager 版本的坑(action-setup#227)。
5.6.0 release
macOS bsdtar 不带 zstd filter,小白机也无 zstd 二进制,解压 .tar.zst 报 'Can't initialize filter; unable to run program zstd -d -qq'。改 mac tarball 为 .tar.gz(bsdtar 原生支持 gzip),linux 保持 .tar.zst(压缩率更好、 linux tar 普遍带 --zstd)。 - build-dist.yml: mac/win → .tar.gz,linux → .tar.zst - install.sh: 按 OS 选 TAR_EXT + 对应解压方式(mac gzip / linux zst)
README 的 `bash -c "..." -s -- --github` 会把 -- 透传给脚本,旧解析器 把它当未知选项报 'Unknown option: --'。加 -- case 跳过。
下过的 tarball 存到 ~/.xiaobei/cache/,重跑(含失败重试)直接复用。 解压失败时删损坏缓存重下一次再试(半下/坏块自愈)。XIAOBEI_TARBALL 优先(用户自带路径不缓存不删)。XIAOBEI_CACHE_DIR 可覆盖缓存目录。
1. build-dist stage 漏 cp 仓根 requirements.txt → 用户侧 Step 4 报 "No requirements.txt found";补 cp。 2. install_camoufox_cli 只把 portable node bin 加 PATH,npm 全局 bin 落 $WISEFLOW_ROOT/bin 不在 PATH → 'camoufox-cli: command not found'; PATH 前置 $WISEFLOW_ROOT/bin。 3. setup-crew.sh find -executable 是 GNU 专属,BSD find(macOS)报 'unknown primary';改 ! -perm -u+x 兼容。 4. prefill_weixin_channel 只置 channels.openclaw-weixin.enabled=true, plugins.openclaw-weixin.enabled 仍 false;同时置 plugins 侧 true。 5. .openclaw/.openclaw 嵌套:openclaw 引擎 resolveStateDir 把 $OPENCLAW_HOME 当 HOME 根再 append /.openclaw(paths.ts:41-67),故 export OPENCLAW_HOME=~/.openclaw 产出嵌套。改 export OPENCLAW_STATE_DIR (引擎当直接覆盖、不 append),OPENCLAW_HOME 仅脚本内部用不外传; gateway env 文件幂等写 OPENCLAW_STATE_DIR 让 service 进程也对齐。 6. 步数总数硬编码 7 但实有 12 步(首装)/9 步(更新);按 is_update 动态设; bind_weixin_channel 改用 ui_section 不递增计数器。
fix(install): 修 5.6.0 tarball macOS 实装 6 个问题
…/Next steps/更新停gateway) 1. Step 5 pip 用 python3.9(CommandLineTools):install_python_deps 改选 python3.12/3.11/3.10/python3,加 --no-warn-script-location --disable-pip-version-check 抑制噪音。 2. Step 7 camoufox-cli Permission denied:npm install -g 建的 bin 缺 +x, install_camoufox_cli 里 chmod +x 跟随 symlink 改目标权限。 3. setup-crew.sh 'gateway env not found' 警告:首装时该文件由后续 install_gateway_and_env 创建,此刻不存在是预期,改静默跳过。 4. Step 12 Invalid config plugins:运行时 prefill_weixin_channel 把 plugins.openclaw-weixin 写成顶层 key(schema 要 plugins.entries.<id>)。 改为直接用 config-templates/openclaw.json,预置 channels.openclaw-weixin.enabled=true + plugins.entries.openclaw-weixin.enabled=true, 删掉运行时 mutate(连同 prefill_weixin_channel 函数体)。 5. 微信扫码过快:根因即 #4,invalid config 致 channels login fail fast 烧 5 次重试;修 #4 后预期自愈。 6. 删 'Next steps' 块(PATH/Dashboard/Update 提示),小白用不到。 7. 更新模式卡 Step 4 pnpm install 几十分钟:运行中 gateway 持 node_modules 文件句柄,pnpm 重写竞争 EBUSY。更新路线开头加 stop_gateway_if_running (Linux systemctl --user stop / Darwin openclaw gateway stop),末尾 refresh_gateway_env_only 重启。 步数:首装 12→11(删 prefill stage),更新 9 不变。
fix(install): 修 tarball 安装 7 个问题(py3.12/camoufox权限/gateway静默/config模板/Next steps/更新停gateway)
- 下载中断/安装失败提示多试几次(tarball ~140MB + Firefox ~557MB,脚本幂等)。 - 推荐专用 7×24 常开机部署、不放隐私机密;办公电脑按需启动可期待官方 Docker 镜像,咨询掌柜。
docs(readme): 加网络重试提示 + 部署机器建议
根因:重跑时 ~/.openclaw/openclaw.json 已存在(openclaw 首启自动生成的极简 config,缺 models/agents.defaults)→ is_update=true → 更新路线不调 place_config_template → 极简 config 永远留着,agent 没有模型,半残。 .bak 环里最老那版就已经是极简的,说明完整 template 从没落过盘。 修: - place_config_template 加健康判定:现有 config 必须同时有 models + agents.defaults 才算健康;不健康 / 不存在 / --force → 用 template 覆盖 (旧文件备份到 .bak.<ts>)。template 缺失改报错(原来静默 no-op)。 - 更新路线开头也调 place_config_template(新增 'Checking config health' stage),这样被极简化的 config 重跑就能自愈;健康则保留不动。 - 更新步数 9→10。README step 8 同步改描述(去掉已删的运行时预填,加自愈说明)。
fix(install): openclaw.json 被极简化自愈(健康检查 + 更新路线也调)
macOS 自带 bash 3.2 在 set -eu 下对 `local var=$(cmd)` 有已知坑,
升级模式跑到 'Checking config health' 时报 `backup?: unbound variable`
(line 1169 cp $backup).
修法:
- backup 在函数顶部预绑定为空串 (local need_place=0 reason="" backup=""),
永不 unbound
- 后缀改用 $$.${RANDOM:-0} (始终有值、无命令替换), 弃用 $(date +%s ...)
- 消除 local-带-命令替换 模式, bash 3.2/5 通用
Co-authored-by: codes-factory-of-bg <[email protected]>
实测 atomgit 三处全坏: - raw 文件接口 (raw/branch/master/... 等 6 种格式) 全返回 gitcode SPA HTML (3576 字节 <!DOCTYPE html>), curl 拿不到脚本内容 → bash -c 跑 HTML - API /api/v1/repos/... 被 CloudWAF 拦 418 (任何 UA) - v5.6.0 release 资产 404 (只同步了 tag, 没同步 140MB tarball 资产) 旧 v5.5.2 wiseflow-*.zip 还在, 但新 xiaobei-* 命名未同步 GitHub 全通: raw=200/72KB 真脚本, release asset=200/147MB 真包. 修法: - install.sh / install.ps1 默认 GitHub (mirror 空), --atomgit/-Atomgit 改 opt-in (待 atomgit infra 修复后重新作为国内默认), --github/-GitHub 保留向后兼容 - README: GitHub 一行命令为唯一推荐 (macOS/Linux bash + Windows PowerShell), 升级段同步; atomgit 标注 '修复中暂不可用'; 新增 Windows GitHub 变体 - install.sh 加 --atomgit flag + 用法帮助更新 Co-authored-by: codes-factory-of-bg <[email protected]>
…被误判 unbound (#453) macOS 用户 v5.6.0 升级模式跑到 [9/11] Placing config template 报 `reason?: unbound variable`(line 1174)。本地 Linux bash 5 同代码正常, 差异在 macOS 自带 /bin/bash 3.2。 根因(真因,非 PR #451 误判的绑定坑):bash 3.2 在 C locale 下把 未加花括号的 `$var` 后接多字节字符(全角()/→)的字节也算进变量名查找, `$reason)` 被查成 `reason)` → unbound,报错里 `?` 是全角 )的 C locale 渲染。 PR #451 的预绑定是对错因下药(绑定从来没问题),花括号才是真修。 修法: - place_config_template 内所有 $var 引用一律 ${var} 加花括号 - 多字节标点改 ASCII:→ 改 ->,()改 () - 每个变量单独 local 声明再纯赋值预绑(belt-and-suspenders,规避多变量一行 local 坑) - 顺手 brace 另 4 处同类风险引用(camoufox/weixin/awada warn、bind_weixin warn) install.ps1 有 8 处类似但 PowerShell 原生 UTF-8 解析无此坑,不动。 Co-authored-by: codes-factory-of-bg <[email protected]>
macOS 用户 v5.6.0 装完 openclaw 校验 config 报:
missing env var "XIAOBEI_HOME" at plugins.load.paths[0]
plugin path not found: /Users/pinshikeji/${XIAOBEI_HOME}/awada
根因:config-templates/openclaw.json 里 plugins.load.paths=["${XIAOBEI_HOME}/awada"]
靠运行时 env 注入。openclaw 在 CLI 上下文(daemon install / doctor / status / 裸跑 openclaw)
校验 config 用的是当前 shell env,未必有 XIAOBEI_HOME → env ref 不展开 → path not found 误报。
(daemon 自己经 launchd wrapper 在 exec 前 . service-env/ai.openclaw.gateway.env 能拿到,
所以 gateway 实际跑得动;误报来自 CLI 校验。)
修法(用户建议):awada 位置在 install 时已知($WISEFLOW_ROOT/awada),place_config_template
放置/保留 config 后用 node 把 ${XIAOBEI_HOME} 直接替换成绝对路径写回。幂等,更新路线也跑
(修老 config 里残留的 env ref)。AWK_API_KEY 是 secret 保持 ${AWK_API_KEY} env ref 不写死
(写死会落盘明文 + 进 .bak 备份 + doctor 可见)。
另:install_gateway_and_env / refresh_gateway_env_only 写完 env 文件后调 load_env_vars_for_cli
把 AWK_API_KEY + XIAOBEI_HOME 加载进 install shell,让 daemon install / gateway restart /
channels login 这些 CLI 调用校验 config 不再误报 missing env var。不写进用户 shell rc
(secret 不落明文 rc);用户裸跑 openclaw 仍可能 warn,属 env-ref 固有、无实际影响。
install.ps1 Place-Config 同步加路径解析。
Co-authored-by: codes-factory-of-bg <[email protected]>
* docs(readme): 加微信换绑 / 增加绑定流程 - 换绑:stop gateway → rm -rf ~/.openclaw/openclaw-weixin/ → start → channels login - 增加绑定:直接再跑 channels login(附多账号 ambiguous 提醒) - 提醒 openclaw 不在 PATH 用全路径 ~/xiaobei/bin/openclaw(不加 PATH 示例) * fix(build): win-x64 tarball 解引用 symlink,修 Windows 解压失败 Windows bsdtar (tar.exe) 无法创建 symlink:哪怕 Administrator,相对 symlink 配 \?\ 扩展路径前缀 → CreateSymbolicLinkW 报 'Invalid argument',导致 install.ps1 解压 tarball 在 11+ 个 symlink 处失败退出(CLAUDE.md→AGENTS.md、 rubric_notes.md→../rubric_notes.md、dist-runtime/*.d.ts→dist/...)。 修法:build-dist.yml 给 win-x64 tarball 加 --dereference,打包时把 symlink 解引用成真实文件副本。树内 703 个 shipping symlink 全是相对、目标在树内、 全是文件(无目录链接、无断链),解引用安全;这些是部署态只读引用文件, 副本无功能损失。linux/mac tarball 保留 symlink(bsdtar/GNU tar 解压正常, 体积更小)。 --------- Co-authored-by: codes-factory-of-bg <[email protected]>
$ErrorActionPreference='Stop' + 原生命令 2>&1 合并进管道 → stderr 行变 ErrorRecord
→ Stop 当 terminating error 抛 NativeCommandError/RemoteException。pip install 正常把
进度条/警告写 stderr,用户 Win 实测卡在 'Installing python skill deps' 这步。
修法:加 Invoke-Streamed helper,临时切 $ErrorActionPreference='Continue' 跑原生命令
并按行回显 stdout+stderr,$LASTEXITCODE 仍由调用方判成败。替换 6 处
'2>&1 | ForEach-Object { Write-Host }' 调用点:pip / camoufox-cli install /
openclaw plugins install / daemon install / gateway restart×2。其余原生调用
(pnpm/npm/bash/tar/channels login)未走 2>&1,stderr 直写控制台不触发 Stop,不动。
Co-authored-by: codes-factory-of-bg <[email protected]>
…s list stderr (#457) 两个 Win 实测卡点: 1. camoufox-cli 全局装 EEXIST:npm install -g $fork 在 Windows 上把 fork 装进 $prefix\node_modules 时撞 fork 源目录本身(EEXIST: file already exists $Root\camoufox-cli)——Windows npm 不能像 Linux 那样 symlink 到源目录。 改仿 openclaw.cmd 写 $Root\bin\camoufox-cli.cmd shim 直接跑 node $fork\dist\cli.js(fork 的 node_modules 已就位,Node 从 cli.js 向上 解析依赖;camoufox-cli JS 用 __dirname 定位包根,行为与全局装一致)。 前置 $Root\bin 进 PATH 让 camoufox-cli install 找得到 shim。 2. plugins list stderr:(& $ClawCmd plugins list 2>$null | Out-String) 在 Windows PowerShell 5.1 + Stop 下压不住 .cmd 的 stderr 仍抛 NativeCommandError。 加 Capture-Streamed helper(Continue + 2>&1 + Out-String)替换。 Co-authored-by: codes-factory-of-bg <[email protected]>
Co-authored-by: codes-factory-of-bg <[email protected]>
gateway start/stop/restart 是走 launchd/systemd/schtasks 的服务管理命令, gateway run 才是前台单次启动(调试用)。原 README 把 gateway start 当成前台 调试命令,在 managed install 下会启服务而非前台跑,误导。 Co-authored-by: codes-factory-of-bg <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
upadate